home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Borland / Borland C++ V5.02 / OWLINC.PAK / WINDOWEV.H < prev    next >
Text File  |  1997-05-06  |  29KB  |  864 lines

  1. //----------------------------------------------------------------------------
  2. // ObjectWindows
  3. // Copyright (c) 1992, 1997 by Borland International, All Rights Reserved
  4. //
  5. //$Revision:   10.13  $
  6. //
  7. // Event response table macros for windows messages
  8. //----------------------------------------------------------------------------
  9. #if !defined(OWL_WINDOWEV_H)
  10. #define OWL_WINDOWEV_H
  11.  
  12. #if !defined(OWL_EVENTHAN_H)
  13. # include <owl/eventhan.h>
  14. #endif
  15.  
  16. //
  17. // General purpose WM_* macro
  18. //
  19. // wparam and lparam are passed, i.e: TParam2 method(TParam1, TParam2)
  20. //
  21. #define EV_MESSAGE(message, method)\
  22.   {message, 0, (TAnyDispatcher)::I32_WPARAM_LPARAM_Dispatch,\
  23.    (TMyPMF)LRESULT_WPARAM_LPARAM_Sig(&TMyClass::method)}
  24.  
  25. //
  26. // Registered messages
  27. //
  28. #define EV_REGISTERED(str, method)\
  29.   EV_MESSAGE(::RegisterWindowMessage(str), method)
  30.  
  31. //
  32. // Handler for child ID notifications that are handled at the child's parent
  33. //
  34. // no arguments are passed, i.e: void method()
  35. //
  36. #define EV_CHILD_NOTIFY(id, notifyCode, method)\
  37.   {notifyCode, id, (TAnyDispatcher)::v_Dispatch,\
  38.    (TMyPMF)v_Sig(&TMyClass::method)}
  39.  
  40. //
  41. // Handler for child ID notifications that are handled at the child's parent
  42. //
  43. // The notification code is passed in as an argument; this allows multiple
  44. // notifications to be handled by a single response function, i.e:
  45. //   void method(uint notifyCode)
  46. //
  47. #define EV_CHILD_NOTIFY_AND_CODE(id, notifyCode, method)\
  48.   {notifyCode, id, (TAnyDispatcher)::v_WPARAM_Dispatch,\
  49.    (TMyPMF)v_U_Sig(&TMyClass::method)}
  50.  
  51. //
  52. // Generic handler for child ID notification: rather than specify the
  53. // specific notification codes you are interested in ALL notifications
  54. // from the child are passed to the response function
  55. //
  56. // The notification code is passed in as an argument, i.e.:
  57. //   void method(uint notifyCode)
  58. //
  59. #define EV_CHILD_NOTIFY_ALL_CODES(id, method)\
  60.   {UINT_MAX, id, (TAnyDispatcher)::v_WPARAM_Dispatch,\
  61.    (TMyPMF)v_U_Sig(&TMyClass::method)}
  62.  
  63. //
  64. // Handler for child ID notifications that are handled at the child
  65. //
  66. // No arguments are passed, i.e: void method()
  67. //
  68. #define EV_NOTIFY_AT_CHILD(notifyCode, method)\
  69.   {notifyCode, UINT_MAX, (TAnyDispatcher)::v_Dispatch,\
  70.    (TMyPMF)v_Sig(&TMyClass::method)}
  71.  
  72. //
  73. // Handler for menu/accelerator/push buttons
  74. //
  75. // No arguments are passed, i.e: void method()
  76. //
  77. #define EV_COMMAND(id, method)\
  78.   {0, id, (TAnyDispatcher)::v_Dispatch,\
  79.    (TMyPMF)v_Sig(&TMyClass::method)}
  80.  
  81. //
  82. // Handler for menu/accelerator/push buttons
  83. //
  84. // The menu id is passed in as an argument; this allows multiple
  85. // commands to be handled by a single response function.
  86. //  void method(uint commandId)
  87. //
  88. #define EV_COMMAND_AND_ID(id, method)\
  89.   {0, id, (TAnyDispatcher)::v_WPARAM_Dispatch,\
  90.    (TMyPMF)v_U_Sig(&TMyClass::method)}
  91.  
  92. //
  93. // Handler for command enabling
  94. //  void method(uint commandId)
  95. //
  96. #define EV_COMMAND_ENABLE(id, method)\
  97.   {WM_COMMAND_ENABLE, id, (TAnyDispatcher)::v_POINTER_Dispatch,\
  98.    (TMyPMF)v_COMMANDENABLER_Sig(&TMyClass::method)}
  99.  
  100. //
  101. // Handlers for document and view notifications
  102. //
  103. #define EV_OWLDOCUMENT(id, method)\
  104.   {WM_OWLDOCUMENT, id, (TAnyDispatcher)::v_POINTER_Dispatch,\
  105.    (TMyPMF)v_OWLDOCUMENT_Sig(&TMyClass::method)}
  106.  
  107. #define EV_OWLVIEW(id, method)\
  108.   {WM_OWLVIEW, id, (TAnyDispatcher)::v_POINTER_Dispatch,\
  109.    (TMyPMF)v_OWLVIEW_Sig(&TMyClass::method)}
  110.  
  111. #define EV_OWLNOTIFY(id, method)\
  112.   {WM_OWLNOTIFY, id, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  113.    (TMyPMF)B_LPARAM_Sig(&TMyClass::method)}
  114.  
  115. #define EV_VIEWNOTIFY(id, method) \
  116.   {WM_OWLNOTIFY, id, (TAnyDispatcher)::B_LPARAM_Dispatch, \
  117.   (TMyPMF)B_LPARAM_Sig(&TMyClass::method)}
  118.  
  119. //
  120. // Handler for the OWL frame sizing message
  121. //
  122. #define EV_OWLFRAMESIZE\
  123.   {WM_OWLFRAMESIZE, 0, (TAnyDispatcher)::v_WPARAM_LPARAM_Dispatch,\
  124.    (TMyPMF)v_U_SIZE_Sig(&TMyClass::EvOwlFrameSize)}
  125.  
  126. //
  127. // Macros for specific WM_* messages
  128. //
  129. #define EV_WM_ACTIVATE\
  130.   {WM_ACTIVATE, 0, (TAnyDispatcher)::v_Activate_Dispatch,\
  131.    (TMyPMF)v_U_B_W_Sig(&TMyClass::EvActivate)}
  132.  
  133. #define EV_WM_ACTIVATEAPP\
  134.   {WM_ACTIVATEAPP, 0, (TAnyDispatcher)::v_B_U_Dispatch,\
  135.    (TMyPMF)v_B_HTASK_Sig(&TMyClass::EvActivateApp)}
  136.  
  137. #define EV_WM_ASKCBFORMATNAME\
  138.   {WM_ASKCBFORMATNAME, 0, (TAnyDispatcher)::v_WPARAM_LPARAM_Dispatch,\
  139.    (TMyPMF)v_U_S_Sig(&TMyClass::EvAskCBFormatName)}
  140.  
  141. #define EV_WM_CANCELMODE\
  142.   {WM_CANCELMODE, 0, (TAnyDispatcher)::v_Dispatch,\
  143.    (TMyPMF)v_Sig(&TMyClass::EvCancelMode)}
  144.  
  145. #define EV_WM_CHANGECBCHAIN\
  146.   {WM_CHANGECBCHAIN, 0, (TAnyDispatcher)::v_U_U_Dispatch,\
  147.    (TMyPMF)v_W_W_Sig(&TMyClass::EvChangeCBChain)}
  148.  
  149. #define EV_WM_CHAR\
  150.   {WM_CHAR, 0, (TAnyDispatcher)::v_U_U_U_Dispatch,\
  151.    (TMyPMF)v_U_U_U_Sig(&TMyClass::EvChar)}
  152.  
  153. #define EV_WM_CHARTOITEM\
  154.   {WM_CHARTOITEM, 0, (TAnyDispatcher)::i_U_W_U_Dispatch,\
  155.    (TMyPMF)i_U_W_U_Sig(&TMyClass::EvCharToItem)}
  156.  
  157. #define EV_WM_CHILDACTIVATE\
  158.   {WM_CHILDACTIVATE, 0, (TAnyDispatcher)::v_Dispatch,\
  159.    (TMyPMF)v_Sig(&TMyClass::EvChildActivate)}
  160.  
  161. #define EV_WM_CHILDINVALID\
  162.   {WM_CHILDINVALID, 0, (TAnyDispatcher)::v_WPARAM_Dispatch,\
  163.    (TMyPMF)v_W_Sig(&TMyClass::EvChildInvalid)}
  164.  
  165. #define EV_WM_CLOSE\
  166.   {WM_CLOSE, 0, (TAnyDispatcher)::v_Dispatch,\
  167.    (TMyPMF)v_Sig(&TMyClass::EvClose)}
  168.  
  169. #define EV_WM_COMMNOTIFY\
  170.   {WM_COMMNOTIFY, 0, (TAnyDispatcher)::v_U_U_Dispatch,\
  171.    (TMyPMF)v_U_U_Sig(&TMyClass::EvCommNotify)}
  172.  
  173. #define EV_WM_COMPACTING\
  174.   {WM_COMPACTING, 0, (TAnyDispatcher)::v_WPARAM_Dispatch,\
  175.    (TMyPMF)v_U_Sig(&TMyClass::EvCompacting)}
  176.  
  177. #define EV_WM_COMPAREITEM\
  178.   {WM_COMPAREITEM, 0, (TAnyDispatcher)::LRESULT_WPARAM_LPARAM_Dispatch,\
  179.    (TMyPMF)LRESULT_U_COMPAREITEM_Sig(&TMyClass::EvCompareItem)}
  180.  
  181. // Win32 only
  182. //
  183. #define EV_WM_COPYDATA\
  184.   {WM_COPYDATA, 0, (TAnyDispatcher)::v_HWND_PCOPYDATASTRUCT_Dispatch,\
  185.    (TMyPMF)v_HWND_PCOPYDATASTRUCT_Sig(&TMyClass::EvCopyData)}
  186.  
  187. #define EV_WM_CREATE\
  188.   {WM_CREATE, 0, (TAnyDispatcher)::i_LPARAM_Dispatch,\
  189.    (TMyPMF)i_CREATE_Sig(&TMyClass::EvCreate)}
  190.  
  191. #define EV_WM_CTLCOLOR\
  192.   {WM_CTLCOLOR, 0, (TAnyDispatcher)::U_U_U_U_Dispatch,\
  193.    (TMyPMF)HBRUSH_HDC_W_U_Sig(&TMyClass::EvCtlColor)}
  194.  
  195. #define EV_WM_DEADCHAR\
  196.   {WM_DEADCHAR, 0, (TAnyDispatcher)::v_U_U_U_Dispatch,\
  197.    (TMyPMF)v_U_U_U_Sig(&TMyClass::EvDeadChar)}
  198.  
  199. #define EV_WM_DELETEITEM\
  200.   {WM_DELETEITEM, 0, (TAnyDispatcher)::v_WPARAM_LPARAM_Dispatch,\
  201.    (TMyPMF)v_U_DELETEITEM_Sig(&TMyClass::EvDeleteItem)}
  202.  
  203. #define EV_WM_DESTROY\
  204.   {WM_DESTROY, 0, (TAnyDispatcher)::v_Dispatch,\
  205.    (TMyPMF)v_Sig(&TMyClass::EvDestroy)}
  206.  
  207. #define EV_WM_DESTROYCLIPBOARD\
  208.   {WM_DESTROYCLIPBOARD, 0, (TAnyDispatcher)::v_Dispatch,\
  209.    (TMyPMF)v_Sig(&TMyClass::EvDestroyClipboard)}
  210.  
  211. #define EV_WM_DEVMODECHANGE\
  212.   {WM_DEVMODECHANGE, 0, (TAnyDispatcher)::v_LPARAM_Dispatch,\
  213.    (TMyPMF)v_S_Sig(&TMyClass::EvDevModeChange)}
  214.  
  215. #define EV_WM_DRAWCLIPBOARD\
  216.   {WM_DRAWCLIPBOARD, 0, (TAnyDispatcher)::v_Dispatch,\
  217.    (TMyPMF)v_Sig(&TMyClass::EvDrawClipboard)}
  218.  
  219. #define EV_WM_DRAWITEM\
  220.   {WM_DRAWITEM, 0, (TAnyDispatcher)::v_WPARAM_LPARAM_Dispatch,\
  221.    (TMyPMF)v_U_DRAWITEM_Sig(&TMyClass::EvDrawItem)}
  222.  
  223. #define EV_WM_DROPFILES\
  224.   {WM_DROPFILES, 0, (TAnyDispatcher)::v_WPARAM_Dispatch,\
  225.    (TMyPMF)v_DROP_Sig(&TMyClass::EvDropFiles)}
  226.  
  227. #define EV_WM_ENABLE\
  228.   {WM_ENABLE, 0, (TAnyDispatcher)::v_B_Dispatch,\
  229.    (TMyPMF)v_B_Sig(&TMyClass::EvEnable)}
  230.  
  231. #define EV_WM_ENDSESSION\
  232.   {WM_ENDSESSION, 0, (TAnyDispatcher)::v_B_B_Dispatch,\
  233.    (TMyPMF)v_B_B_Sig(&TMyClass::EvEndSession)}
  234.  
  235. #define EV_WM_ENTERIDLE\
  236.   {WM_ENTERIDLE, 0, (TAnyDispatcher)::v_U_U_Dispatch,\
  237.    (TMyPMF)v_U_W_Sig(&TMyClass::EvEnterIdle)}
  238.  
  239. #define EV_WM_ERASEBKGND\
  240.   {WM_ERASEBKGND, 0, (TAnyDispatcher)::B_WPARAM_Dispatch,\
  241.    (TMyPMF)B_HDC_Sig(&TMyClass::EvEraseBkgnd)}
  242.  
  243. #define EV_WM_FONTCHANGE\
  244.   {WM_FONTCHANGE, 0, (TAnyDispatcher)::v_Dispatch,\
  245.    (TMyPMF)v_Sig(&TMyClass::EvFontChange)}
  246.  
  247. #define EV_WM_GETDLGCODE\
  248.   {WM_GETDLGCODE, 0, (TAnyDispatcher)::U_LPARAM_Dispatch,\
  249.    (TMyPMF)U_MSG_Sig(&TMyClass::EvGetDlgCode)}
  250.  
  251. #define EV_WM_GETFONT\
  252.   {WM_GETFONT, 0, (TAnyDispatcher)::U_Dispatch,\
  253.    (TMyPMF)HFONT_Sig(&TMyClass::EvGetFont)}
  254.  
  255. #define EV_WM_GETMINMAXINFO\
  256.   {WM_GETMINMAXINFO, 0, (TAnyDispatcher)::v_LPARAM_Dispatch,\
  257.    (TMyPMF)v_MINMAXINFO_Sig(&TMyClass::EvGetMinMaxInfo)}
  258.  
  259. #define EV_WM_GETTEXT\
  260.   {WM_GETTEXT, 0, (TAnyDispatcher)::v_WPARAM_LPARAM_Dispatch,\
  261.    (TMyPMF)v_U_S_Sig(&TMyClass::EvGetText)}
  262.  
  263. #define EV_WM_GETTEXTLENGTH\
  264.   {WM_GETTEXTLENGTH, 0, (TAnyDispatcher)::U_Dispatch,\
  265.    (TMyPMF)U_Sig(&TMyClass::EvGetTextLength)}
  266.  
  267. // Win32 only
  268. //
  269. #define EV_WM_HOTKEY\
  270.   {WM_HOTKEY, 0, (TAnyDispatcher)::v_WPARAM_Dispatch,\
  271.    (TMyPMF)v_i_Sig(&TMyClass::EvHotKey)}
  272.  
  273. #define EV_WM_HSCROLL\
  274.   {WM_HSCROLL, 0, (TAnyDispatcher)::v_U_U_W_Dispatch,\
  275.    (TMyPMF)v_U_U_W_Sig(&TMyClass::EvHScroll)}
  276.  
  277. #define EV_WM_HSCROLLCLIPBOARD\
  278.   {WM_HSCROLLCLIPBOARD, 0, (TAnyDispatcher)::v_U_U_U_Dispatch,\
  279.    (TMyPMF)v_W_U_U_Sig(&TMyClass::EvHScrollClipboard)}
  280.  
  281. #define EV_WM_ICONERASEBKGND\
  282.   {WM_ICONERASEBKGND, 0, (TAnyDispatcher)::v_WPARAM_Dispatch,\
  283.    (TMyPMF)v_HDC_Sig(&TMyClass::EvIconEraseBkgnd)}
  284.  
  285. #define EV_WM_INITMENU\
  286.   {WM_INITMENU, 0, (TAnyDispatcher)::v_WPARAM_Dispatch,\
  287.    (TMyPMF)v_HMENU_Sig(&TMyClass::EvInitMenu)}
  288.  
  289. #define EV_WM_INITMENUPOPUP\
  290.   {WM_INITMENUPOPUP, 0, (TAnyDispatcher)::v_U_U_B_Dispatch,\
  291.    (TMyPMF)v_HMENU_U_B_Sig(&TMyClass::EvInitMenuPopup)}
  292.  
  293. #define EV_WM_KEYDOWN\
  294.   {WM_KEYDOWN, 0, (TAnyDispatcher)::v_U_U_U_Dispatch,\
  295.    (TMyPMF)v_U_U_U_Sig(&TMyClass::EvKeyDown)}
  296.  
  297. #define EV_WM_KEYUP\
  298.   {WM_KEYUP, 0, (TAnyDispatcher)::v_U_U_U_Dispatch,\
  299.    (TMyPMF)v_U_U_U_Sig(&TMyClass::EvKeyUp)}
  300.  
  301. #define EV_WM_KILLFOCUS\
  302.   {WM_KILLFOCUS, 0, (TAnyDispatcher)::v_WPARAM_Dispatch,\
  303.    (TMyPMF)v_W_Sig(&TMyClass::EvKillFocus)}
  304.  
  305. #define EV_WM_LBUTTONDBLCLK\
  306.   {WM_LBUTTONDBLCLK, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
  307.    (TMyPMF)v_U_POINT_Sig(&TMyClass::EvLButtonDblClk)}
  308.  
  309. #define EV_WM_LBUTTONDOWN\
  310.   {WM_LBUTTONDOWN, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
  311.    (TMyPMF)v_U_POINT_Sig(&TMyClass::EvLButtonDown)}
  312.  
  313. #define EV_WM_LBUTTONUP\
  314.   {WM_LBUTTONUP, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
  315.    (TMyPMF)v_U_POINT_Sig(&TMyClass::EvLButtonUp)}
  316.  
  317. #define EV_WM_MBUTTONDBLCLK\
  318.   {WM_MBUTTONDBLCLK, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
  319.    (TMyPMF)v_U_POINT_Sig(&TMyClass::EvMButtonDblClk)}
  320.  
  321. #define EV_WM_MBUTTONDOWN\
  322.   {WM_MBUTTONDOWN, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
  323.    (TMyPMF)v_U_POINT_Sig(&TMyClass::EvMButtonDown)}
  324.  
  325. #define EV_WM_MBUTTONUP\
  326.   {WM_MBUTTONUP, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
  327.    (TMyPMF)v_U_POINT_Sig(&TMyClass::EvMButtonUp)}
  328.  
  329. #define EV_WM_MDIACTIVATE\
  330.   {WM_MDIACTIVATE, 0, (TAnyDispatcher)::v_MdiActivate_Dispatch,\
  331.    (TMyPMF)v_W_W_Sig(&TMyClass::EvMDIActivate)}
  332.  
  333. #define EV_WM_MDICREATE\
  334.   {WM_MDICREATE, 0, (TAnyDispatcher)::i_LPARAM_Dispatch,\
  335.    (TMyPMF)LRESULT_MDICREATESTRUCT_Sig(&TMyClass::EvMDICreate)}
  336.  
  337. #define EV_WM_MDIDESTROY\
  338.   {WM_MDIDESTROY, 0, (TAnyDispatcher)::v_WPARAM_Dispatch,\
  339.    (TMyPMF)v_W_Sig(&TMyClass::EvMDIDestroy)}
  340.  
  341. #define EV_WM_MENUCHAR\
  342.   {WM_MENUCHAR, 0, (TAnyDispatcher)::I32_MenuChar_Dispatch,\
  343.    (TMyPMF)LRESULT_U_U_HMENU_Sig(&TMyClass::EvMenuChar)}
  344.  
  345. #define EV_WM_MENUSELECT\
  346.   {WM_MENUSELECT, 0, (TAnyDispatcher)::v_U_U_W_Dispatch,\
  347.    (TMyPMF)v_U_U_HMENU_Sig(&TMyClass::EvMenuSelect)}
  348.  
  349. #define EV_WM_MEASUREITEM\
  350.   {WM_MEASUREITEM, 0, (TAnyDispatcher)::v_WPARAM_LPARAM_Dispatch,\
  351.    (TMyPMF)v_U_MEASUREITEM_Sig(&TMyClass::EvMeasureItem)}
  352.  
  353. #define EV_WM_MOUSEACTIVATE\
  354.   {WM_MOUSEACTIVATE, 0, (TAnyDispatcher)::U_U_U_U_Dispatch,\
  355.    (TMyPMF)U_W_U_U_Sig(&TMyClass::EvMouseActivate)}
  356.  
  357. #define EV_WM_MOUSEMOVE\
  358.   {WM_MOUSEMOVE, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
  359.    (TMyPMF)v_U_POINT_Sig(&TMyClass::EvMouseMove)}
  360.  
  361. #define EV_WM_MOVE\
  362.   {WM_MOVE, 0, (TAnyDispatcher)::v_POINT_Dispatch,\
  363.    (TMyPMF)v_POINT_Sig(&TMyClass::EvMove)}
  364.  
  365. #define EV_WM_NCACTIVATE\
  366.   {WM_NCACTIVATE, 0, (TAnyDispatcher)::B_B_Dispatch,\
  367.    (TMyPMF)B_B_Sig(&TMyClass::EvNCActivate)}
  368.  
  369. #define EV_WM_NCCALCSIZE\
  370.   {WM_NCCALCSIZE, 0, (TAnyDispatcher)::U_B_LPARAM_Dispatch,\
  371.    (TMyPMF)U_B_CALCSIZE_Sig(&TMyClass::EvNCCalcSize)}
  372.  
  373. #define EV_WM_NCCREATE\
  374.   {WM_NCCREATE, 0, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  375.    (TMyPMF)B_CREATE_Sig(&TMyClass::EvNCCreate)}
  376.  
  377. #define EV_WM_NCDESTROY\
  378.   {WM_NCDESTROY, 0, (TAnyDispatcher)::v_Dispatch,\
  379.    (TMyPMF)v_Sig(&TMyClass::EvNCDestroy)}
  380.  
  381. #define EV_WM_NCHITTEST\
  382.   {WM_NCHITTEST, 0, (TAnyDispatcher)::U_POINT_Dispatch,\
  383.    (TMyPMF)U_POINT_Sig(&TMyClass::EvNCHitTest)}
  384.  
  385. #define EV_WM_NCLBUTTONDBLCLK\
  386.   {WM_NCLBUTTONDBLCLK, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
  387.    (TMyPMF)v_U_POINT_Sig(&TMyClass::EvNCLButtonDblClk)}
  388.  
  389. #define EV_WM_NCLBUTTONDOWN\
  390.   {WM_NCLBUTTONDOWN, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
  391.    (TMyPMF)v_U_POINT_Sig(&TMyClass::EvNCLButtonDown)}
  392.  
  393. #define EV_WM_NCLBUTTONUP\
  394.   {WM_NCLBUTTONUP, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
  395.    (TMyPMF)v_U_POINT_Sig(&TMyClass::EvNCLButtonUp)}
  396.  
  397. #define EV_WM_NCMBUTTONDBLCLK\
  398.   {WM_NCMBUTTONDBLCLK, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
  399.    (TMyPMF)v_U_POINT_Sig(&TMyClass::EvNCMButtonDblClk)}
  400.  
  401. #define EV_WM_NCMBUTTONDOWN\
  402.   {WM_NCMBUTTONDOWN, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
  403.    (TMyPMF)v_U_POINT_Sig(&TMyClass::EvNCMButtonDown)}
  404.  
  405. #define EV_WM_NCMBUTTONUP\
  406.   {WM_NCMBUTTONUP, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
  407.    (TMyPMF)v_U_POINT_Sig(&TMyClass::EvNCMButtonUp)}
  408.  
  409. #define EV_WM_NCMOUSEMOVE\
  410.   {WM_NCMOUSEMOVE, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
  411.    (TMyPMF)v_U_POINT_Sig(&TMyClass::EvNCMouseMove)}
  412.  
  413. // WM_NCPAINT has different parameters for 16 and 32bit
  414. //
  415. #if defined(BI_PLAT_WIN32)
  416. #define EV_WM_NCPAINT\
  417.   {WM_NCPAINT, 0, (TAnyDispatcher)::v_WPARAM_Dispatch,\
  418.    (TMyPMF)v_HRGN_Sig(&TMyClass::EvNCPaint)}
  419. #else
  420. #define EV_WM_NCPAINT\
  421.   {WM_NCPAINT, 0, (TAnyDispatcher)::v_Dispatch,\
  422.    (TMyPMF)v_Sig(&TMyClass::EvNCPaint)}
  423. #endif //BI_PLAT_WIN32
  424.  
  425. #define EV_WM_NCRBUTTONDBLCLK\
  426.   {WM_NCRBUTTONDBLCLK, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
  427.    (TMyPMF)v_U_POINT_Sig(&TMyClass::EvNCRButtonDblClk)}
  428.  
  429. #define EV_WM_NCRBUTTONDOWN\
  430.   {WM_NCRBUTTONDOWN, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
  431.    (TMyPMF)v_U_POINT_Sig(&TMyClass::EvNCRButtonDown)}
  432.  
  433. #define EV_WM_NCRBUTTONUP\
  434.   {WM_NCRBUTTONUP, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
  435.    (TMyPMF)v_U_POINT_Sig(&TMyClass::EvNCRButtonUp)}
  436.  
  437. #define EV_WM_NEXTDLGCTL\
  438.   {WM_NEXTDLGCTL, 0, (TAnyDispatcher)::v_U_U_Dispatch,\
  439.    (TMyPMF)v_U_U_Sig(&TMyClass::EvNextDlgCtl)}
  440.  
  441. #define EV_WM_PAINT\
  442.   {WM_PAINT, 0, (TAnyDispatcher)::v_Dispatch,\
  443.    (TMyPMF)v_Sig(&TMyClass::EvPaint)}
  444.  
  445. #define EV_WM_PAINTCLIPBOARD\
  446.   {WM_PAINTCLIPBOARD, 0, (TAnyDispatcher)::v_U_U_Dispatch,\
  447.    (TMyPMF)v_W_H_Sig(&TMyClass::EvPaintClipboard)}
  448.  
  449. // Win32 only
  450. //
  451. #define EV_WM_PAINTICON\
  452.   {WM_PAINTICON, 0, (TAnyDispatcher)::v_Dispatch,\
  453.    (TMyPMF)v_Sig(&TMyClass::EvPaintIcon)}
  454.  
  455. #define EV_WM_PALETTECHANGED\
  456.   {WM_PALETTECHANGED, 0, (TAnyDispatcher)::v_WPARAM_Dispatch,\
  457.    (TMyPMF)v_W_Sig(&TMyClass::EvPaletteChanged)}
  458.  
  459. #define EV_WM_PALETTEISCHANGING\
  460.   {WM_PALETTEISCHANGING, 0, (TAnyDispatcher)::v_WPARAM_Dispatch,\
  461.    (TMyPMF)v_W_Sig(&TMyClass::EvPaletteIsChanging)}
  462.  
  463. #define EV_WM_PARENTNOTIFY\
  464.   {WM_PARENTNOTIFY, 0, (TAnyDispatcher)::v_ParentNotify_Dispatch,\
  465.    (TMyPMF)v_U_U_U_Sig(&TMyClass::EvParentNotify)}
  466.  
  467. #define EV_WM_POWER\
  468.   {WM_POWER, 0, (TAnyDispatcher)::i_WPARAM_Dispatch,\
  469.    (TMyPMF)i_U_Sig(&TMyClass::EvPower)}
  470.  
  471. #define EV_WM_QUERYDRAGICON\
  472.   {WM_QUERYDRAGICON, 0, (TAnyDispatcher)::U_Dispatch,\
  473.    (TMyPMF)H_Sig(&TMyClass::EvQueryDragIcon)}
  474.  
  475. #define EV_WM_QUERYENDSESSION\
  476.   {WM_QUERYENDSESSION, 0, (TAnyDispatcher)::B_Dispatch,\
  477.    (TMyPMF)B_Sig(&TMyClass::EvQueryEndSession)}
  478.  
  479. #define EV_WM_QUERYNEWPALETTE\
  480.   {WM_QUERYNEWPALETTE, 0, (TAnyDispatcher)::B_Dispatch,\
  481.    (TMyPMF)B_Sig(&TMyClass::EvQueryNewPalette)}
  482.  
  483. #define EV_WM_QUERYOPEN\
  484.   {WM_QUERYOPEN, 0, (TAnyDispatcher)::B_Dispatch,\
  485.    (TMyPMF)B_Sig(&TMyClass::EvQueryOpen)}
  486.  
  487. #define EV_WM_QUEUESYNC\
  488.   {WM_QUEUESYNC, 0, (TAnyDispatcher)::v_Dispatch,\
  489.    (TMyPMF)v_Sig(&TMyClass::EvQueueSync)}
  490.  
  491. #define EV_WM_RBUTTONDBLCLK\
  492.   {WM_RBUTTONDBLCLK, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
  493.    (TMyPMF)v_U_POINT_Sig(&TMyClass::EvRButtonDblClk)}
  494.  
  495. #define EV_WM_RBUTTONDOWN\
  496.   {WM_RBUTTONDOWN, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
  497.    (TMyPMF)v_U_POINT_Sig(&TMyClass::EvRButtonDown)}
  498.  
  499. #define EV_WM_RBUTTONUP\
  500.   {WM_RBUTTONUP, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
  501.    (TMyPMF)v_U_POINT_Sig(&TMyClass::EvRButtonUp)}
  502.  
  503. #define EV_WM_RENDERALLFORMATS\
  504.   {WM_RENDERALLFORMATS, 0, (TAnyDispatcher)::v_Dispatch,\
  505.    (TMyPMF)v_Sig(&TMyClass::EvRenderAllFormats)}
  506.  
  507. #define EV_WM_RENDERFORMAT\
  508.   {WM_RENDERFORMAT, 0, (TAnyDispatcher)::v_WPARAM_Dispatch,\
  509.    (TMyPMF)v_U_Sig(&TMyClass::EvRenderFormat)}
  510.  
  511. #define EV_WM_SETCURSOR\
  512.   {WM_SETCURSOR, 0, (TAnyDispatcher)::B_U_U_U_Dispatch,\
  513.    (TMyPMF)B_W_U_U_Sig(&TMyClass::EvSetCursor)}
  514.  
  515. #define EV_WM_SETFOCUS\
  516.   {WM_SETFOCUS, 0, (TAnyDispatcher)::v_WPARAM_Dispatch,\
  517.    (TMyPMF)v_W_Sig(&TMyClass::EvSetFocus)}
  518.  
  519. #define EV_WM_SETFONT\
  520.   {WM_SETFONT, 0, (TAnyDispatcher)::v_U_B_Dispatch,\
  521.    (TMyPMF)v_HFONT_B_Sig(&TMyClass::EvSetFont)}
  522.  
  523. #define EV_WM_SETREDRAW\
  524.   {WM_SETREDRAW, 0, (TAnyDispatcher)::v_B_Dispatch,\
  525.    (TMyPMF)v_B_Sig(&TMyClass::EvSetRedraw)}
  526.  
  527. #define EV_WM_SETTEXT\
  528.   {WM_SETTEXT, 0, (TAnyDispatcher)::v_LPARAM_Dispatch,\
  529.    (TMyPMF)v_CS_Sig(&TMyClass::EvSetText)}
  530.  
  531. #define EV_WM_SHOWWINDOW\
  532.   {WM_SHOWWINDOW, 0, (TAnyDispatcher)::v_B_U_Dispatch,\
  533.    (TMyPMF)v_B_U_Sig(&TMyClass::EvShowWindow)}
  534.  
  535. #define EV_WM_SIZE\
  536.   {WM_SIZE, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
  537.    (TMyPMF)v_U_SIZE_Sig(&TMyClass::EvSize)}
  538.  
  539. #define EV_WM_SIZECLIPBOARD\
  540.   {WM_SIZECLIPBOARD, 0, (TAnyDispatcher)::v_U_U_Dispatch,\
  541.    (TMyPMF)v_W_H_Sig(&TMyClass::EvSizeClipboard)}
  542.  
  543. #define EV_WM_SPOOLERSTATUS\
  544.   {WM_SPOOLERSTATUS, 0, (TAnyDispatcher)::v_U_U_Dispatch,\
  545.    (TMyPMF)v_U_U_Sig(&TMyClass::EvSpoolerStatus)}
  546.  
  547. #define EV_WM_SYSCHAR\
  548.   {WM_SYSCHAR, 0, (TAnyDispatcher)::v_U_U_U_Dispatch,\
  549.    (TMyPMF)v_U_U_U_Sig(&TMyClass::EvSysChar)}
  550.  
  551. #define EV_WM_SYSCOLORCHANGE\
  552.   {WM_SYSCOLORCHANGE, 0, (TAnyDispatcher)::v_Dispatch,\
  553.    (TMyPMF)v_Sig(&TMyClass::EvSysColorChange)}
  554.  
  555. #define EV_WM_SYSCOMMAND\
  556.   {WM_SYSCOMMAND, 0, (TAnyDispatcher)::v_U_POINT_Dispatch,\
  557.    (TMyPMF)v_U_POINT_Sig(&TMyClass::EvSysCommand)}
  558.  
  559. #define EV_WM_SYSDEADCHAR\
  560.   {WM_SYSDEADCHAR, 0, (TAnyDispatcher)::v_U_U_U_Dispatch,\
  561.    (TMyPMF)v_U_U_U_Sig(&TMyClass::EvSysDeadChar)}
  562.  
  563. #define EV_WM_SYSKEYDOWN\
  564.   {WM_SYSKEYDOWN, 0, (TAnyDispatcher)::v_U_U_U_Dispatch,\
  565.    (TMyPMF)v_U_U_U_Sig(&TMyClass::EvSysKeyDown)}
  566.  
  567. #define EV_WM_SYSKEYUP\
  568.   {WM_SYSKEYUP, 0, (TAnyDispatcher)::v_U_U_U_Dispatch,\
  569.    (TMyPMF)v_U_U_U_Sig(&TMyClass::EvSysKeyUp)}
  570.  
  571. #define EV_WM_SYSTEMERROR\
  572.   {WM_SYSTEMERROR, 0, (TAnyDispatcher)::v_WPARAM_Dispatch,\
  573.    (TMyPMF)v_U_Sig(&TMyClass::EvSystemError)}
  574.  
  575. #define EV_WM_TIMECHANGE\
  576.   {WM_TIMECHANGE, 0, (TAnyDispatcher)::v_Dispatch,\
  577.    (TMyPMF)v_Sig(&TMyClass::EvTimeChange)}
  578.  
  579. #define EV_WM_TIMER\
  580.   {WM_TIMER, 0, (TAnyDispatcher)::v_WPARAM_Dispatch,\
  581.    (TMyPMF)v_U_Sig(&TMyClass::EvTimer)}
  582.  
  583. #define EV_WM_VKEYTOITEM\
  584.   {WM_VKEYTOITEM, 0, (TAnyDispatcher)::i_U_W_U_Dispatch,\
  585.    (TMyPMF)i_U_W_U_Sig(&TMyClass::EvVKeyToItem)}
  586.  
  587. #define EV_WM_VSCROLL\
  588.   {WM_VSCROLL, 0, (TAnyDispatcher)::v_U_U_W_Dispatch,\
  589.    (TMyPMF)v_U_U_W_Sig(&TMyClass::EvVScroll)}
  590.  
  591. #define EV_WM_VSCROLLCLIPBOARD\
  592.   {WM_VSCROLLCLIPBOARD, 0, (TAnyDispatcher)::v_U_U_U_Dispatch,\
  593.    (TMyPMF)v_W_U_U_Sig(&TMyClass::EvVScrollClipboard)}
  594.  
  595. #define EV_WM_WINDOWPOSCHANGED\
  596.   {WM_WINDOWPOSCHANGED, 0, (TAnyDispatcher)::v_LPARAM_Dispatch,\
  597.    (TMyPMF)v_WINDOWPOS_Sig(&TMyClass::EvWindowPosChanged)}
  598.  
  599. #define EV_WM_WINDOWPOSCHANGING\
  600.   {WM_WINDOWPOSCHANGING, 0, (TAnyDispatcher)::v_LPARAM_Dispatch,\
  601.    (TMyPMF)v_WINDOWPOS_Sig(&TMyClass::EvWindowPosChanging)}
  602.  
  603. #define EV_WM_WININICHANGE\
  604.   {WM_WININICHANGE, 0, (TAnyDispatcher)::v_LPARAM_Dispatch,\
  605.    (TMyPMF)v_S_Sig(&TMyClass::EvWinIniChange)}
  606.  
  607. //
  608. //
  609. //
  610. #define EV_WM_SETTINGCHANGE\
  611.   {WM_SETTINGCHANGE, 0, (TAnyDispatcher)::v_WPARAM_LPARAM_Dispatch,\
  612.   (TMyPMF)v_U_CS_Sig(&TMyClass::EvSettingChange)}
  613.  
  614. #define EV_WM_DISPLAYCHANGE\
  615.   {WM_DISPLAYCHANGE, 0, (TAnyDispatcher)::v_B_U_U_Dispatch,\
  616.    (TMyPMF)v_B_I_I_Sig(&TMyClass::EvDisplayChange)}
  617.  
  618. //WM_NOTIFY  // Not dispatched, use virtual
  619.  
  620. #define EV_WM_INPUTLANGCHANGEREQUEST\
  621.   {WM_INPUTLANGCHANGEREQUEST, 0, (TAnyDispatcher)::B_B_U_Dispatch,\
  622.    (TMyPMF)B_B_HKL_Sig(&TMyClass::EvInputLangChangeRequest)}
  623.  
  624. #define EV_WM_INPUTLANGCHANGE\
  625.   {WM_INPUTLANGCHANGE, 0, (TAnyDispatcher)::B_U_U_Dispatch,\
  626.   (TMyPMF)B_I_HKL_Sig(&TMyClass::EvInputLangChange)}
  627.  
  628. #define EV_WM_TCARD\
  629.   {WM_TCARD, 0, (TAnyDispatcher)::v_U_U32_Dispatch,\
  630.   (TMyPMF)v_I_I32_Sig(&TMyClass::EvTCard)}
  631.  
  632. #define EV_WM_HELP\
  633.   {WM_HELP, 0, (TAnyDispatcher)::v_LPARAM_Dispatch,\
  634.   (TMyPMF)v_HELPINFO_Sig(&TMyClass::EvHelp)}
  635.  
  636. #define EV_WM_USERCHANGED\
  637.   {WM_USERCHANGED, 0, (TAnyDispatcher)::B_Dispatch,\
  638.   (TMyPMF)B_Sig(&TMyClass::EvUserChanged)}
  639.  
  640. #define EV_WM_CONTEXTMENU\
  641.   {WM_CONTEXTMENU, 0, (TAnyDispatcher)::v_U_U_U_Dispatch,\
  642.   (TMyPMF)v_W_I_I_Sig(&TMyClass::EvContextMenu)}
  643.  
  644. #define EV_WM_STYLECHANGING\
  645.   {WM_STYLECHANGING, 0, (TAnyDispatcher)::v_WPARAM_LPARAM_Dispatch,\
  646.   (TMyPMF)v_U_STYLE_Sig(&TMyClass::EvStyleChanging)}
  647.  
  648. #define EV_WM_STYLECHANGED\
  649.   {WM_STYLECHANGED, 0, (TAnyDispatcher)::v_WPARAM_LPARAM_Dispatch,\
  650.   (TMyPMF)v_U_STYLE_Sig(&TMyClass::EvStyleChanged)}
  651.  
  652. #define EV_WM_GETICON\
  653.   {WM_GETICON, 0, (TAnyDispatcher)::U_B_Dispatch,\
  654.   (TMyPMF)HICON_B_Sig(&TMyClass::EvGetIcon)}
  655.  
  656. #define EV_WM_SETICON\
  657.   {WM_SETICON, 0, (TAnyDispatcher)::U_B_U_Dispatch,\
  658.   (TMyPMF)HICON_B_HICON_Sig(&TMyClass::EvSetIcon)}
  659.  
  660. #define EV_WM_SIZING\
  661.   {WM_SIZING, 0, (TAnyDispatcher)::B_U_RECT_Dispatch,\
  662.   (TMyPMF)B_U_RECT_Sig(&TMyClass::EvSizing)}
  663.  
  664. #define EV_WM_CAPTURECHANGED\
  665.   {WM_CAPTURECHANGED, 0, (TAnyDispatcher)::v_U_Dispatch,\
  666.   (TMyPMF)v_W_Sig(&TMyClass::EvCaptureChanged)}
  667.  
  668. #define EV_WM_MOVING\
  669.   {WM_MOVING, 0, (TAnyDispatcher)::B_U_RECT_Dispatch,\
  670.   (TMyPMF)B_U_RECT_Sig(&TMyClass::EvMoving)}
  671.  
  672. #define EV_WM_ENTERSIZEMOVE\
  673.   {WM_ENTERSIZEMOVE, 0, (TAnyDispatcher)::v_Dispatch,\
  674.   (TMyPMF)v_Sig(&TMyClass::Ev)}
  675.  
  676. #define EV_WM_EXITSIZEMOVE\
  677.   {WM_EXITSIZEMOVE, 0, (TAnyDispatcher)::v_Dispatch,\
  678.   (TMyPMF)v_Sig(&TMyClass::EvExitSizeMove)}
  679.  
  680. #define EV_WM_POWERBROADCAST\
  681.   {WM_POWERBROADCAST, 0, (TAnyDispatcher)::B_WPARAM_LPARAM_Dispatch,\
  682.   (TMyPMF)B_U_U_Sig(&TMyClass::Ev)}
  683.  
  684. //
  685. #if 0
  686. #define EV_WM_DEVICECHANGE\
  687.   {WM_DEVICECHANGE, 0, (TAnyDispatcher)::v_Dispatch,\
  688.   (TMyPMF)v_Sig(&TMyClass::Ev)}
  689. #endif
  690.  
  691. #if 0
  692. //WM_IME_SETCONTEXT
  693. #define EV_\
  694.   {xxx, 0, (TAnyDispatcher)::v_Dispatch,\
  695.   (TMyPMF)v_Sig(&TMyClass::Ev)}
  696.  
  697. //WM_IME_NOTIFY
  698. #define EV_\
  699.   {xxx, 0, (TAnyDispatcher)::v_Dispatch,\
  700.   (TMyPMF)v_Sig(&TMyClass::Ev)}
  701.  
  702. //WM_IME_CONTROL
  703. #define EV_\
  704.   {xxx, 0, (TAnyDispatcher)::v_Dispatch,\
  705.   (TMyPMF)v_Sig(&TMyClass::Ev)}
  706.  
  707. //WM_IME_COMPOSITIONFULL
  708. #define EV_\
  709.   {xxx, 0, (TAnyDispatcher)::v_Dispatch,\
  710.   (TMyPMF)v_Sig(&TMyClass::Ev)}
  711.  
  712. //WM_IME_SELECT
  713. #define EV_\
  714.   {xxx, 0, (TAnyDispatcher)::v_Dispatch,\
  715.   (TMyPMF)v_Sig(&TMyClass::Ev)}
  716.  
  717. //WM_IME_CHAR
  718. #define EV_\
  719.   {xxx, 0, (TAnyDispatcher)::v_Dispatch,\
  720.   (TMyPMF)v_Sig(&TMyClass::Ev)}
  721.  
  722. //WM_IME_KEYDOWN
  723. #define EV_\
  724.   {xxx, 0, (TAnyDispatcher)::v_Dispatch,\
  725.   (TMyPMF)v_Sig(&TMyClass::Ev)}
  726.  
  727. //WM_IME_KEYUP
  728. #define EV_\
  729.   {xxx, 0, (TAnyDispatcher)::v_Dispatch,\
  730.   (TMyPMF)v_Sig(&TMyClass::Ev)}
  731.  
  732. //
  733. //WM_IME_STARTCOMPOSITION
  734. #define EV_\
  735.   {xxx, 0, (TAnyDispatcher)::v_Dispatch,\
  736.   (TMyPMF)v_Sig(&TMyClass::Ev)}
  737.  
  738. //WM_IME_ENDCOMPOSITION
  739. #define EV_\
  740.   {xxx, 0, (TAnyDispatcher)::v_Dispatch,\
  741.   (TMyPMF)v_Sig(&TMyClass::Ev)}
  742.  
  743. //WM_IME_COMPOSITION
  744. #define EV_\
  745.   {xxx, 0, (TAnyDispatcher)::v_Dispatch,\
  746.   (TMyPMF)v_Sig(&TMyClass::Ev)}
  747.  
  748. //WM_IME_KEYLAST
  749. #define EV_\
  750.   {xxx, 0, (TAnyDispatcher)::v_Dispatch,\
  751.   (TMyPMF)v_Sig(&TMyClass::Ev)}
  752. #endif
  753.  
  754. #define EV_WM_ENTERMENULOOP\
  755.   {WM_ENTERMENULOOP, 0, (TAnyDispatcher)::v_B_Dispatch,\
  756.   (TMyPMF)v_B_Sig(&TMyClass::EvEnterMenuLoop)}
  757.  
  758. #define EV_WM_EXITMENULOOP\
  759.   {WM_EXITMENULOOP, 0, (TAnyDispatcher)::v_B_Dispatch,\
  760.   (TMyPMF)v_B_Sig(&TMyClass::EvExitMenuLoop)}
  761.  
  762. //
  763. #if 0
  764. #define EV_WM_NEXTMENU\
  765.   {WM_NEXTMENU, 0, (TAnyDispatcher)::v_Dispatch,\
  766.   (TMyPMF)v_Sig(&TMyClass::EvNextMenu)}
  767. #endif
  768.  
  769. #define EV_WM_PRINT\
  770.   {WM_PRINT, 0, (TAnyDispatcher)::v_WPARAM_LPARAM_Dispatch,\
  771.   (TMyPMF)v_HDC_U_Sig(&TMyClass::Ev)}
  772.  
  773. #define EV_WM_PRINTCLIENT\
  774.   {WM_PRINTCLIENT, 0, (TAnyDispatcher)::v_WPARAM_LPARAM_Dispatch,\
  775.   (TMyPMF)v_HDC_U_Sig(&TMyClass::Ev)}
  776.  
  777. //WM_HANDHELDFIRST    
  778. //WM_HANDHELDLAST     
  779.  
  780. //WM_AFXFIRST  
  781. //WM_AFXLAST   
  782.  
  783. //WM_APP  
  784. //WM_USER 
  785.  
  786. //
  787. // Dialog messages
  788. //
  789. #define EV_DM_GETDEFID\
  790.   {DM_GETDEFID, 0, (TAnyDispatcher)::U32_Dispatch,\
  791.     (TMyPMF)U32_Sig(&TMyClass::EvGetDefId)}
  792.  
  793. #define EV_DM_SETDEFID\
  794.   {DM_SETDEFID, 0, (TAnyDispatcher)::B_WPARAM_Dispatch,\
  795.     (TMyPMF)B_I_Sig(&TMyClass::EvSetDefId)}
  796.  
  797. #if defined(BI_PLAT_WIN32)
  798. # define EV_DM_REPOSITION\
  799.    {DM_REPOSITION, 0, (TAnyDispatcher)::v_Dispatch,\
  800.     (TMyPMF)v_Sig(&TMyClass::EvReposition)}
  801. #endif
  802.  
  803. //
  804. // Control notification macros
  805. //
  806.  
  807. #define EV_BN_CLICKED(id, method)   EV_CHILD_NOTIFY(id, BN_CLICKED, method)
  808. #define EV_BN_DISABLE(id, method)   EV_CHILD_NOTIFY(id, BN_DISABLE, method)
  809. #define EV_BN_DOUBLECLICKED(id, method)  EV_CHILD_NOTIFY(id, BN_DOUBLECLICKED, method)
  810. #define EV_BN_HILITE(id, method)    EV_CHILD_NOTIFY(id, BN_HILITE, method)
  811. #define EV_BN_PAINT(id, method)     EV_CHILD_NOTIFY(id, BN_PAINT, method)
  812. #define EV_BN_UNHILITE(id, method)  EV_CHILD_NOTIFY(id, BN_UNHILITE, method)
  813. #if defined(BI_PLAT_WIN32)
  814. #define EV_BN_KILLFOCUS(id, method) EV_CHILD_NOTIFY(id, BN_KILLFOCUS, method)
  815. #define EV_BN_SETFOCUS(id, method)  EV_CHILD_NOTIFY(id, BN_SETFOCUS, method)
  816. #endif
  817.  
  818. #define EV_CBN_CLOSEUP(id, method)    EV_CHILD_NOTIFY(id, CBN_CLOSEUP, method)
  819. #define EV_CBN_DBLCLK(id, method)     EV_CHILD_NOTIFY(id, CBN_DBLCLK, method)
  820. #define EV_CBN_DROPDOWN(id, method)   EV_CHILD_NOTIFY(id, CBN_DROPDOWN, method)
  821. #define EV_CBN_EDITCHANGE(id, method) EV_CHILD_NOTIFY(id, CBN_EDITCHANGE, method)
  822. #define EV_CBN_EDITUPDATE(id, method) EV_CHILD_NOTIFY(id, CBN_EDITUPDATE, method)
  823. #define EV_CBN_ERRSPACE(id, method)   EV_CHILD_NOTIFY(id, CBN_ERRSPACE, method)
  824. #define EV_CBN_KILLFOCUS(id, method)  EV_CHILD_NOTIFY(id, CBN_KILLFOCUS, method)
  825. #define EV_CBN_SELCHANGE(id, method)  EV_CHILD_NOTIFY(id, CBN_SELCHANGE, method)
  826. #define EV_CBN_SELENDCANCEL(id, method) EV_CHILD_NOTIFY(id, CBN_SELENDCANCEL, method)
  827. #define EV_CBN_SELENDOK(id, method)   EV_CHILD_NOTIFY(id, CBN_SELENDOK, method)
  828. #define EV_CBN_SETFOCUS(id, method)   EV_CHILD_NOTIFY(id, CBN_SETFOCUS, method)
  829.  
  830. #define EV_EN_CHANGE(id, method)    EV_CHILD_NOTIFY(id, EN_CHANGE, method)
  831. #define EV_EN_ERRSPACE(id, method)  EV_CHILD_NOTIFY(id, EN_ERRSPACE, method)
  832. #define EV_EN_HSCROLL(id, method)   EV_CHILD_NOTIFY(id, EN_HSCROLL, method)
  833. #define EV_EN_KILLFOCUS(id, method) EV_CHILD_NOTIFY(id, EN_KILLFOCUS, method)
  834. #define EV_EN_MAXTEXT(id, method)   EV_CHILD_NOTIFY(id, EN_MAXTEXT, method)
  835. #define EV_EN_SETFOCUS(id, method)  EV_CHILD_NOTIFY(id, EN_SETFOCUS, method)
  836. #define EV_EN_UPDATE(id, method)    EV_CHILD_NOTIFY(id, EN_UPDATE, method)
  837. #define EV_EN_VSCROLL(id, method)   EV_CHILD_NOTIFY(id, EN_VSCROLL, method)
  838.  
  839. #define EV_LBN_DBLCLK(id, method)    EV_CHILD_NOTIFY(id, LBN_DBLCLK, method)
  840. #define EV_LBN_ERRSPACE(id, method)  EV_CHILD_NOTIFY(id, LBN_ERRSPACE, method)
  841. #define EV_LBN_KILLFOCUS(id, method) EV_CHILD_NOTIFY(id, LBN_KILLFOCUS, method)
  842. #define EV_LBN_SELCANCEL(id, method) EV_CHILD_NOTIFY(id, LBN_SELCANCEL, method)
  843. #define EV_LBN_SELCHANGE(id, method) EV_CHILD_NOTIFY(id, LBN_SELCHANGE, method)
  844. #define EV_LBN_SETFOCUS(id, method)  EV_CHILD_NOTIFY(id, LBN_SETFOCUS, method)
  845.  
  846. #define EV_SB_LINEDOWN(id, method)   EV_CHILD_NOTIFY(id, SB_LINEDOWN, method)
  847. #define EV_SB_LINEUP(id, method)     EV_CHILD_NOTIFY(id, SB_LINEUP, method)
  848. #define EV_SB_PAGEDOWN(id, method)   EV_CHILD_NOTIFY(id, SB_PAGEDOWN, method)
  849. #define EV_SB_PAGEUP(id, method)     EV_CHILD_NOTIFY(id, SB_PAGEUP, method)
  850. #define EV_SB_TOP(id, method)        EV_CHILD_NOTIFY(id, SB_TOP, method)
  851. #define EV_SB_BOTTOM(id, method)     EV_CHILD_NOTIFY(id, SB_BOTTOM, method)
  852. #define EV_SB_THUMBPOSITION(id, method) EV_CHILD_NOTIFY(id, SB_THUMBPOSITION, method)
  853. #define EV_SB_ENDSCROLL(id, method)  EV_CHILD_NOTIFY(id, SB_ENDSCROLL, method)
  854. #define EV_SB_BEGINTRACK(id, method) EV_CHILD_NOTIFY(id, 9, method)
  855.  
  856. #if defined(BI_PLAT_WIN32)
  857. #define EV_STN_DBLCLK(id, method)    EV_CHILD_NOTIFY(id, STN_DBLCLK, method)
  858. #define EV_STN_CLICKED(id, method)   EV_CHILD_NOTIFY(id, STN_CLICKED, method)
  859. #define EV_STN_DISABLE(id, method)   EV_CHILD_NOTIFY(id, STN_DISABLE, method)
  860. #define EV_STN_ENABLE(id, method)    EV_CHILD_NOTIFY(id, STN_ENABLE, method)
  861. #endif
  862.  
  863. #endif  // OWL_WINDOWEV_H
  864.